A typical computing device contains a processor and one or more stored application programs that are executable by the processor to carry out various useful functions. The device may also include a user interface, such as a display screen and keypad, through which a user can invoke a desired program, and through which the user can provide input to the program and receive output from the programs.
In general, each application program on the computing device may employ one or more data resources in order to provide basic or enhanced features and functions. The data resources, which are also typically stored on the device, can take the form of additional program routines (e.g., code libraries or modules) executable by the processor and/or reference data (e.g., parameter values) usable by the processor to tailor operation of the application program in some manner.
Numerous application programs and associated data resources exist now, and others will be developed in the future. By way of example, and without limitation, two example application programs are a channel-presentation program and a skin-rendering program.
A channel-presentation program functions to receive a user selection of a desired subject-matter channel and to responsively present the user with information regarding that subject matter. Such a program can include a number of channel-definitions (e.g., discrete files or other sets of data), each of which may constitute a respective data resource for the program. Each channel-definition, for instance, may designate a particular subject (e.g., movies, sports, weather, stock market, etc.) and may specify one or more network addresses (e.g., URLs) from which the device should download relevant information for presentation when the user tunes to the channel. Some channel-presentation programs may automatically background-download the information for each defined channel so that the information is readily available for presentation to the user whenever the user tunes to a channel.
A skin-rendering program functions to render a selected user-interface theme or “skin.” Each skin may be defined by parameters set forth in a respective skin-definition file (e.g., XML-based file) or other data that constitutes a data resource for the skin-rendering program. In particular, each skin-definition file may designate specific user-interface attributes such as button and menu graphics, background images, screen-savers, borders, cursor graphics, color schemes, fonts, ringtones and other sounds, and relative arrangement of user interface components, among others. In practice, a user may invoke the skin-rendering program and select a desired skin, and the program may then render the selected skin so as to give the user-interface of the device (or of a specific program) a desired look and feel.
Advantageously, many computing devices or application programs are further arranged to allow installation of additional data resources, so as to allow a user to enhance or modify program performance. Generally, a user may install a new data resource on a device by downloading the data resource from a web site and then invoking any necessary installation function to store the data resource in a predefined location on the device and to integrate the data resource with one or more existing application programs.
For example, using a generic web browser or a program designed specifically to allow acquisition of data resources, a user may interact with an online “vending machine” website that offers a variety of data resources for purchase or for free download. Through such a vending machine, the user may download a new data resource, such as a channel-definition file directed to particular subject (e.g., “health and fitness”, “outdoor sports”, etc.) or a skin-definition file of a particular type (e.g., a top-40 music themed skin, for instance). Depending on the device/program configuration, the device may then automatically install the downloaded data resource, or a user may manually direct installation of the data resource on the device.
A problem with this existing method of adding new data resources, however, is that it can enable a user to intentionally or inadvertently install rogue or malicious data resources, which can unfortunately jeopardize the performance and stability of the device or application programs. This can be a particular problem if the application program that will use the data resource is core function of the device. For instance, a cell phone or wirelessly-equipped PDA may include a channel-presentation program and a skin-rendering program as basic features of the device. Before a manufacturer or distributor of such a device distributes the device to an end user, the manufacturer or distributor would thoroughly test those programs and their associated data resources to ensure their proper operation. If a user could then add other data resources after the fact, a risk exists that the added data resources might be untested and might render the device or application programs unstable or inoperable.
To avoid this risk, device or application program designers may structure the device or application programs to specifically preclude installation of new data resources. For instance, a program designer may simply not include in an application program a feature that allows the application program to access newly added data resources. Or a device manufacturer or program designer may store the application program and its data resources in a protected memory space of the device where a user cannot store additional data resources.
Unfortunately, however, precluding the addition of new data resources is inherently problematic, since it prevents users from adding desirable program functions or features to their computing devices. For instance, a user may be precluded from adding a new channel-definition directed to a subject matter of interest to the user or a new skin-definition having a theme of interest to the user. Consequently, an improvement is desired.